package sun.superstring.method1reference;

import java.util.Arrays;

public class Test3 {
    public static void main(String[] args) {
        // 目标：特定类型的方法引用
        // 需求：有一个字符串数组，里面有一些人的名字，都是英文名字，请按照名字的首字母升序排序。
        String[] names = {"Tom", "Jerry", "曹操","Mike","Angela", "Jack", "Rose", "Lucy", "Andy", "Bobi","caocao"};

        // 把这个数组进行排序：Arrays.sort(names,Comparator)
        Arrays.sort(names);  // 默认就是按照首字母的编号升序排序
        // 要求：忽略首字母的大小进行升序排序（java官方默认是搞不定的，需要我们自己指定比较规则）
        /*Arrays.sort(names, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                // o1 Angela
                // o2 Andy
                return o1.compareToIgnoreCase(o2);   // o1 > o2 返回正数，o1 < o2 返回负数，o1 == o2 返回0
                // java已经为我们提供了字符串按照首字母忽略大小写比较的方法：compareToIgnoreCase()
            }
        });*/

        // 调用字符串类型的实例方法——特定类型的实例方法
//        Arrays.sort(names, (o1, o2) -> o1.compareToIgnoreCase(o2) );
        // 调用字符串类型的静态方法——特定类型的静态方法  类型名称：：方法
        Arrays.sort(names, String::compareToIgnoreCase);

        System.out.println(Arrays.toString(names));
    }
}
